Measuring and test equipment currently employed by telephone service providers customarily contain a variety of conditioning and signal generation capabilities which enable service and maintenance personnel to apply a prescribed number of electrical stimuli to a line (a digital subscriber loop), for the purpose of trouble-shooting the line and measuring its performance. A non-limitative example of such equipment is diagrammatically illustrated in FIG. 1, which shows the distribution of a plurality of (microprocessor-controlled) remote measurement units (RMUs) 11, which are installed at a plurality of sites geographically remote with respect to each other and a supervisory site 12.
RMUs 11 include various components, such as tone generation and electrical conditioning circuitry, which, under the control of a firmware-resident measurement and test mechanism employed by an on-board processor, selectively transmit prescribed test signals to the line, and may also condition the line with prescribed electrical circuit parameters, that allow an associated line monitoring unit to conduct line measurements and thereby determine the current state of the line and its ability to successfully perform as intended.
For this purpose, each RMU 11 is typically of the type that conforms to computer interface requirements defined in Issue 3 of AT&T Publication KS-23253, and contains internal firmware which is operative to perform various diagnostic or test operations on network lines 13 and (subscriber) termination equipment 15, by means of one or more host computers, video display terminals (VDTs) or data terminal units (DTUs) 14 at the supervisory site 12, which have the capability of accessing the remote test equipments 11 through attendant modem devices 16, such as industry standard Hayes `AT`-compatible 300/1200 units, that are linked to a central office 18. Additionally, via a modem interface 17, an operating support system (OSS) 19 may coordinate testing via RMU 11 and other test systems employed by central office 18.
Because the test and conditioning capabilities may vary among customers and different versions of such equipment, whenever it is necessary to perform a repair, or effect a change to the functionality of the test unit's firmware (e.g. change an instruction set), it is customary practice for a service technician (craftsperson) to travel to the site where the equipment is installed, and either make a component or board replacement in the field, or, as is more often the case, retrieve the unit, bring it back to a servicing site, where a repair or retrofit is performed, and then return the modified unit to the remote site, so that it may be placed back in service with the upgraded functionality.
The above-identified co-pending application describes a mechanism which substantially reduces the cost in labor and down time required to service a remote test unit in such a conventional manner by configuring the firmware-memory architecture of the unit's micro-controller of a pair of redundant, erasable flash memory systems, each of which stores a `quasi-redundant` version of the operating system firmware employed by the test device. The use of flash memories allows the resident firmware to be selectively, electronically modified, from a supervisory device, such as a personal computer coupled through a modem to the central office, or via a personal computer connection to a serial port of the test unit.
More particularly, as shown diagrammatically in FIG. 2, associated with the control processor 20 of the remote measurement and test unit are two flash memory systems 21, 22, which store respective electronically modifiable active and inactive (quasi-redundant) versions of the operating system software used by the test device's microprocessor. By `quasi-redundant` is meant that each memory system contains a version of the firmware that is potentially capable of operating the RMU. Control processor 20 and flash memory systems 21 and 22 are coupled with an RMU system bus 23 together with attendant random access memory (RAM) 24, a watchdog timer 26 and input/output (I/O) interface unit 25 (containing associated analog-to-digital converter (ADC), digital-to-analog converter (DAC) units and other I/O relays with which a line under test (LUT) may be controllably connected).
As shown in FIG. 3, a respective flash memory system 30 (of which each of memory systems 21 and 22 in FIG. 2 is configured) is comprised of one of more memory modules 31 having a cumulative address space sufficient to allow for additions to a resident operating system and to provide attendant service random access memory. The memory space of a respective flash memory system is partitioned in banks of a prescribed depth each. In the non-limitative example shown in FIG. 3, a respective flash memory system 30 may comprise a pair of memory modules 31A and 31B, each having a memory space of 128 kbytes, for a total of 256 kbytes of addressable memory space per system. An initial portion 32 (e.g. 32 Kbytes) of each flash memory system contains the same or common operating system code, while the remainder of the system (224 kbytes in the present example) is divided into contiguous, but individually addressable, banks of memory (e.g. fourteen banks 33-1 . . . 33-14) each of a prescribed capacity (e.g. sixteen kbytes).
A respective flash memory device is programmed by initially resetting the entirety of each bank (to all `1`s) and then the binary state of selective ones of the memory cells in each reset bank is changed to a `0`. In a like manner, in order to reprogram a previously programmed flash memory device, it is necessary to initially reset the entirety of each to-be-reprogrammed bank (to all `1`s), and then change the binary state of one or more memory cells of each reset bank to a `0`.
When the remote measurement unit (RMU) is initially configured for installation at a test and conditioning site, each of its two flash memory systems 21 and 22 will have been loaded with the same firmware, so that, at installation, the two flash memories contain redundant versions of the same operating system. When the test unit is powered-up, its on-board processor defaults to a prescribed one of the pair of memory systems and uses the operating system resident in the default memory system (until that system is modified). Thereafter, when the operating system is to be changed (e.g. upgraded or a previously inactive feature activated), the inactive (off-line redundant) system is modified and the unit is reset. Modification of an operating system may include performing an upgrade (installing a newer version of the firmware through which the functionality of the programmable test device is enhanced); performing a downgrade, which serves to invalidate the currently running version and to activate the (older) version of the firmware contained in the inactive memory system; activating one or more features of the currently running firmware; and deactivating one or more features of a currently running system.
Once modification of the inactive system has been completed, then, in order to change from the currently running system and substitute in its place the modified inactive system, it is necessary to reset the unit. Upon reset, the previously inactive system becomes the active system, while the previously active system, which is now `quasi-redundant` with respect to the active system goes off-line. All future modifications (other than existing feature activation) operate on the system that is off-line or inactive at the time of the modification.